package ai.people.platform.system.service;

import ai.people.netmon.framework.domain.system.entity.NmSystemUser;
import ai.people.netmon.framework.domain.system.entity.NmSystemUserInfo;
import ai.people.netmon.framework.domain.system.request.SystemUserRequest;
import ai.people.netmon.framework.domain.ucenter.entity.NmSysUser;
import ai.people.netmon.framework.model.response.PageResponse;

/**
 * 系统用户信息服务
 *
 * @author yuanqinglong
 * @date 2022/3/22 13:54
 */
public interface SystemUserInfoService {


    /**
     * 通过账号查询用户信息
     *
     * @param account 账户
     * @return {@link NmSystemUserInfo}
     */
    NmSystemUserInfo getUserInfoByAccount(String account);


    /**
     * 通过id查询用户信息
     *
     * @param userId 用户id
     * @return {@link NmSystemUserInfo}
     */
    NmSystemUserInfo getUserById(Long userId);


    /**
     * 用户信息列表
     *
     * @param systemUserRequest 系统用户请求
     * @return {@link PageResponse}<{@link NmSystemUserInfo}>
     */
    PageResponse<NmSystemUserInfo> listUsersInfo(SystemUserRequest systemUserRequest);


    /**
     * 添加系统用户信息
     *
     * @param nmSystemUserInfo 系统用户信息
     */
    void addSystemUserInfo(NmSystemUserInfo nmSystemUserInfo);


    /**
     * 更新用户
     *
     * @param nmSystemUserInfo 系统用户
     */
    void updateUserInfo(NmSystemUserInfo nmSystemUserInfo);


    /**
     * 删除用户信息
     *
     * @param userId 用户id
     */
    void deleteUserInfo(Long userId);


}
